home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ARK.ARJ / ARKANOID.PAS < prev    next >
Pascal/Delphi Source File  |  1994-02-17  |  5KB  |  101 lines

  1. { ----------------------------------------------------------------------- }
  2. {                                                                         }
  3. {                                 ARKANOID                                }
  4. {                         Written by Claudio Bazzan                       }
  5. {                     Esame di Fondamenti di Informatica I                }
  6. {                         Professor Eduardo Calabrese                     }
  7. {                    Revisione v1.02 per il publico dominio               }
  8. {                                                                         }
  9. { Nota: Questo programma e' la riproduzione fedele (per quanto possibile) }
  10. {       del famoso Coin-Op da bar Arkanoid. I diritti del gioco originale }
  11. {       sono della Taito Corp, questa versione e' da intendersi solamente }
  12. {       a titolo dimostrativo. E' quindi assolutamente vietata la vendita }
  13. {       o qualsiasi altro scopo di lucro.                                 }
  14. {                                                                         }
  15. {       Il programma gira su tutte le macchine con processore 80286 o su- }
  16. {       periore. E' consigliato l'utilizzo di un 80386 per aprezzarne a   }
  17. {       pieno le qualita'.                                                }
  18. {                                                                         }
  19. {       E sconsigliata la compilazione con RANGE CHECKING attivato dal    }
  20. {       momento che i tempi di esecuzione sono critici e un minimo ritar- }
  21. {       do nell'esecuzione di alcuni punti puo' provocarne un significa-  }
  22. {       tivo e fastidioso rallentamento globale.                          }
  23. {       Naturalmente il programma funziona tranquillamente anche con      }
  24. {       la verifica degli intervalli attiva.                              }
  25. {                                                                         }
  26. { ----------------------------------------------------------------------- }
  27.  
  28. { NOTA PER CHI CERCASSE SPECIFICHE RIGUARDO ALLA GRAFICA                  }
  29. {                                                                         }
  30. { La grafica di questo programma e' stata progettata con POWERDESIGN 386, }
  31. { un programma shareware che permette di manipolare immagini in modo      }
  32. { avanzato. Chiunque fosse interessato puo' prelevarlo gratuitamente da   }
  33. { qualunque nodo ISN oppure a Banana's BBS al 2:332/508 (Tel.0521/904046).}
  34. { Il programma viene continuamente aggiornato, l'ultima versione disponi- }
  35. { bile al momento della stesura di questo testo e' la v1.06 beta.         }
  36. { Il nome con cui e' possibile prelevare tale programma e' PD386Bxx.ARJ o }
  37. { PD386Bxx.ZIP ove al posto delle xx viene messo il numero della versione }
  38. { corrente. Pertanto un eventuale DOWNLOAD puo' essere fatto col nome:    }
  39. { PD386B*.*                                                               }
  40. { Il programma richiede un processore 386 (o migliore), scheda VGA o SVGA }
  41. { ed e' consigliabile la presenza di memoria estesa/espansa e relativo    }
  42. { driver di memoria (es. EMM386, QEMM, ecc.)                              }
  43.  
  44. program Arkanoid;
  45. {$F+}
  46. uses crt,dos,graph,mouse,snd,service,FM;
  47.  
  48. begin
  49.  
  50.    { Questa porzione contiene solo il caricamento in memoria dei files dati }
  51.  
  52.    DetectFM;
  53.    success:=TRUE;  { Success viene messo a FALSE se si verifica un errore da disco }
  54.  
  55.    load_all_walls; { Carica i 32 muri di gioco }
  56.  
  57.    initSVGA;       { Attiva la modalita grafica 320x200x256 col. }
  58.    initRowArray;   { Inizializza un array utile per evitare le moltiplicazioni }
  59.                    { per 320. }
  60.  
  61.  
  62.    { Carica uno dopo l'altro tutti i disegni grafici di cui necessita }
  63.  
  64.    loadBTM('PLAYGR.BTM'  ,playscreen,TRUE);  { lo schermo virtuale }
  65.    loadBTM('PRESENT.BTM' ,presents,false);   { la scritta ARKANOID }
  66.    loadBTM('EXPLODE.BTM' ,explosion,FALSE);  { l'esplosione del vaus }
  67.    loadBTM('NEWVAUS.BTM' ,newvaus,FALSE);    { la creazione del vaus }
  68.    loadBTM('SOUNDFX.BTM' ,soundfx,FALSE);    { l'icona sound on/off  }
  69.    loadBTM('SHINEWAL.BTM',shinewall,FALSE);  { il lucchichio dei mattoni }
  70.    loadBTM('MINIVAUS.BTM',minivaus,FALSE);   { i vaus che indicano le vite }
  71.    loadBTM('LEVELSEL.BTM',levelsel,FALSE);   { l'icona del livello di gioco }
  72.    loadBTM('DROPS.BTM'   ,letters,FALSE);    { le 7 lettere }
  73.    loadBTM('VAUS.BTM'    ,normal,FALSE);     { il vaus }
  74.    loadBTM('LASERS.BTM'  ,lasers,FALSE);     { i raggi laser sparati dal vaus }
  75.    loadBTM('ENLARGED.BTM',enlarged,FALSE);   { il vaus allargato }
  76.    loadBTM('FIRE.BTM'    ,shoots,FALSE);     { il vaus coi laser montati }
  77.    loadBTM('SCRFLUX.BTM' ,flux,FALSE);       { l'onda di flusso (per la lett. B) }
  78.  
  79.    if not success then fatal_error('Program can''t find some BTM files');
  80.  
  81.    score.hiscore:=50000;
  82.    { il punteggio record viene settato inizialmente a 50000 per default }
  83.  
  84.    sound_on:=TRUE;      { per default all'inizio il suono e' attivo }
  85.    lv:=DEFLEVEL;        { e il livello viene settato a DEFLEVEL     }
  86.  
  87.    repeat
  88.  
  89.       mousereset;
  90.  
  91.       { mainscreen restituisce 1,2 (numero gioc. ) o -1 = quit }
  92.       score.pl_numb:=mainscreen;
  93.       if score.pl_numb>0 then start_game(score.pl_numb);
  94.  
  95.    until score.pl_numb<1; { cicla finche' non vale -1 = quit }
  96.  
  97.    closegraph; { Chiude la grafica }
  98.    closeprogram;
  99.  
  100. end.
  101.